import localForage from 'localforage'

// 存储数据，增加两个回调方法，一个是成功的回调，要给是失败的回调
export function setLocalForage (key, data, cb, cb2) {
  localForage.setItem(key, data).then((value) => {
    if (cb) cb(value)
  }).catch(function (err) {
    if (cb2) cb2(err)
  })
}

// 获取数据
export function getLocalForage (key, cb) {
  localForage.getItem(key, (err, value) => {
    cb(err, value)
  })
}

// 根据给定的key讲值删除
export function removeLocalForage (key, cb, cb2) {
  localForage.removeItem(key).then(function () {
    if (cb) cb()
  }).catch(function (err) {
    if (cb2) cb2(err)
  })
}

// 清空数据库
export function clearLocalForage (cb, cb2) {
  localForage.clear().then(function () {
    if (cb) cb()
  }).catch(function (err) {
    if (cb2) cb2(err)
  })
}

// 长度获取
export function lengthLocalForage (cb) {
  localForage.length().then(
    numberOfKeys => {
      if (cb) cb(numberOfKeys)
      // console.log(numberOfKeys)
    }).catch(function (err) {
    if (err) {}
    // console.log(err)
  })
}

// 遍历获取元素
export function iteratorLocalForage () {
  // 遍历
  localForage.iterate(function (value, key, iterationNumber) {
    // console.log([key, value])
  }).then(function () {
    // console.log('Iteration has completed')
  }).catch(function (err) {
    if (err) {}
    // console.log(err)
  })
}

// 是否支持提供indexDB数据库
export function support () {
  const indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || null
  if (indexedDB) {
    return true
  } else {
    return false
  }
}
